home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / v10n18.arc / DISPSTRU.PRG < prev    next >
Text File  |  1991-10-30  |  3KB  |  84 lines

  1. ***********************************************************************
  2. * DISPSTRU.PRG                                            Clipper 5.01
  3. *
  4. * Command line utility to display the structure of a Clipper DBF File.
  5. * Usage: DISPSTRU <dbf> [TO <filename>] [TO PRIN[TER]]
  6. *
  7. ***********************************************************************
  8. #include "set.ch"
  9. *
  10. * --- Define the UDC "DISPLAY STRUCTURE"
  11. *
  12. #command DISPLAY STRUCTURE [<print: TO PRINTER>] [TO <(file)>] ;
  13.    => disp_stru( <(file)>, <.print.>)
  14.  
  15. PARAMETERS dbffile, tto, dest
  16. IF tto <> NIL
  17.    tto = UPPER(tto)
  18. ENDIF
  19. IF (dbffile == NIL) .OR. ((tto = "TO") .AND. (dest = NIL))
  20.    dispusage()
  21.    RETURN
  22. ENDIF
  23. IF AT('.',dbffile)=0                      && Add extension if needed
  24.    dbffile = dbffile+".dbf"
  25. ENDIF
  26.  
  27. USE (dbffile) NEW                         && USE the requested file
  28.  
  29. DO CASE
  30. CASE "" = dest .OR. dest = NIL
  31.    DISPLAY STRUCTURE                      && Execute UDC
  32. CASE LEFT(UPPER(dest),4) = "PRIN"
  33.    DISPLAY STRUCTURE TO PRINTER           && Execute UDC with option
  34. OTHERWISE
  35.    DISPLAY STRUCTURE TO (dest)            && Execute UDC with option
  36. ENDCASE
  37.  
  38. RETURN NIL
  39.  
  40. ***********************************************************************
  41. * disp_stru()                                         Clipper 5.01
  42. *
  43. * Function called by User Defined Command "DISPLAY STRUCTURE"
  44. ***********************************************************************
  45. FUNCTION disp_stru()
  46. #include "dbstruct.ch"
  47. PARAMETERS file, print
  48.  
  49. oldprintf = SET(_SET_PRINTFILE)           && Save these for restoring
  50. oldprint  = SET(_SET_PRINTER)             && later
  51. oldcons   = SET(_SET_CONSOLE)
  52.  
  53. DO CASE
  54. CASE "" <> file .AND. file <> NIL
  55.    SET PRINTER TO (file) ADDITIVE         && Send to file additive
  56.    SET CONSOLE OFF                        && Shut off console
  57.    SET PRINTER ON
  58. CASE print
  59.    SET CONSOLE OFF                        && Shut off console
  60.    SET PRINTER ON
  61. ENDCASE
  62.  
  63. ?? "Structure for "+UPPER(dbffile)        && Display structure
  64. ? "Name       ", "Type", "Len", "Dec"
  65. ? "-----------", "----", "---", "---"
  66.  
  67. AEVAL( (ALIAS())->(DBSTRUCT()),{ | adbfstruct |    ;
  68.    QOUT(PAD(adbfstruct[DBS_NAME], 10), ;
  69.    "   " + adbfstruct[DBS_TYPE],      ;
  70.    STR(adbfstruct[DBS_LEN], 3),   ;
  71.    STR(adbfstruct[DBS_DEC], 3))  })
  72. ?
  73. SET(_SET_PRINTER,  oldprint)              && Restore saved values
  74. SET(_SET_PRINTFILE,oldprintf)
  75. SET(_SET_CONSOLE,  oldcons)
  76. RETURN NIL
  77.  
  78. ***********************************************************************
  79. * dispusage()  - Display usage information
  80. ***********************************************************************
  81. FUNCTION dispusage
  82. ?? "Usage: DISPSTRU <dbfname> [[TO <filename>] | [TO PRINTER]]"
  83. RETURN NIL
  84.